home *** CD-ROM | disk | FTP | other *** search
/ SuperHack / SuperHack CD.bin / CODING / CPP / WCLASS95.ZIP / VC15MAI1.CPP < prev    next >
Encoding:
C/C++ Source or Header  |  1995-04-20  |  5.4 KB  |  93 lines

  1. //This sample main program may be used to test C++ code generation scripts.
  2. //In With Class load cppcar.omt.  Run the scripts cpphead1.sct and cppfunc1.sct
  3. //or borland scripts.
  4. //Create a project in your C++ environment.  Add cppmain.cpp, vehicle.cpp, 
  5. //car.cpp, motor.cpp, passenge.cpp, tire.cpp, and cellular.cpp.
  6. //Comments and suggestions are solicited Richard Felsinger, RCF Associates
  7. //960 Scottland Dr, Mt Pleasant, SC 29464 tele 803-881-3648 71162.755@compuserve.com
  8.  
  9. #include "stdafx.h"
  10. #include "car.h"
  11. #include <iostream.h>
  12.  
  13. int main ()
  14.   Car car1;                                                     //Invokes default constructor
  15.   car1.operate();                                       //Invokes operation function
  16.  
  17.   cin >> car1;                          //Invokes input function >>
  18.   cout << car1;                                 //Invokes output function << 
  19.  
  20.   int aSpeed, aNumber;                  //Create int variables
  21.   long aTotal;                          //Create long variable
  22.   car1.setspeed (55);                                   //Invokes set accessor function
  23.   aSpeed = car1.getspeed();                     //Invokes get accessor function 
  24.   Car::settotalCarsBuilt (20000);   //Invokes set accessor function for static data member
  25.   aTotal = Car::gettotalCarsBuilt(); //Invokes get accessor function for static data member
  26.   
  27.   Car car2 (car1);                                //Invokes copy constructor
  28.   Car car3 (55);                                  //Invokes constructor with arguments
  29.   car1 = car2;                                    //Invokes assignment operator
  30.  
  31.                                                 //Invokes equality operator
  32.   if (car1 == car2) cout << "Cars are equal." << "\n";
  33.   else cout << "Cars are not equal." << "\n";
  34.  
  35.   car1.registerIt();                    //Invokes redefined virtual function
  36.   car1.operate();                       //Invokes a function    
  37.   car1.setnumber(1111);                 //Invokes set accessor function from base class
  38.   aNumber = car1.getnumber();  //Invokes get accessor function from base class
  39.  
  40.   Motor motor1, motor2;     //Create motor objects
  41.   car1.operate();           //Invokes traversal function to access aggregation part
  42.   car1.setMotor(motor1);    //Invokes set accessor function to set aggregation part
  43.   motor2 = car1.getMotor(); //Invokes get accessor function to get aggregation part
  44.  
  45.   CellularPhone phone1, phone2;       //Create phone objects
  46.   car1.setCellularPhone (&phone1);    //Invokes set accessor function for association object
  47.   car1.makePhoneCall();         //Invokes traversal function to access association object
  48.   phone2 = *car1.getCellularPhone ();  //Invokes get accessor function to get association object
  49.   BOOL phoneStatus = car1.existsCellularPhone ();  //Invokes exists function for association object
  50.   phoneStatus = car1.existsCellularPhone (&phone1);//Invokes exists function for association object
  51.   car1.removeCellularPhone();         //Invokes remove function for association object
  52.   
  53.   CObList tireCollection;   
  54.   
  55. //  tireCollection = car1.getTireCollection(); //Invokes get accessor function for collection of aggregation objects
  56.   Tire tire1(50), tire2(60);      
  57.   tireCollection.AddTail(&tire1);      
  58.   tireCollection.AddTail(&tire2);      
  59.                     //Creates tire objects
  60.  
  61.   car1.setTireCollection (tireCollection);   //Invokes set accessor function for collection of aggregation objects
  62.  
  63.   tire1 = car1.getFirstTire();           //Invokes get accessor function for 1:M aggregation object
  64.   BOOL tireStatus = car1.existsTire (tire1);//Invokes exists function for 1:M aggregation object
  65.   car1.inflateTire();                                                   //Invokes traversal function for 1:M aggregation object
  66.   
  67.   CObList passengerCollection;
  68. //passengerCollection = car1.getPassengerCollection(); //Invokes get accessor function for collection of association objects
  69.   car1.setPassengerCollection (passengerCollection);   //Invokes set accessor function for collection of association objects
  70.   
  71.   Passenger passenger1, passenger2, passenger3, passenger4; //Create passenger objects
  72.   car1.addPassenger(&passenger1);         //Invokes add function for 1:M association object
  73.   car1.addPassenger(&passenger2);               //Invokes add function for 1:M association object
  74.   car1.addPassenger(&passenger3);         //Invokes add function for 1:M association object
  75.   car1.addPassenger(&passenger4);         //Invokes add function for 1:M association object
  76.   car1.checkPassengerSeatBelt();                                //Invokes traversal function for 1:M association object
  77.      
  78.   BOOL passengerStatus;
  79. //  passengerStatus = car1.existsPassenger ();        //Invokes exists function for association object
  80.   passengerStatus = car1.existsPassenger (passenger1);   //Invokes exists function for association object
  81.  
  82.   cin >> car1;                                                                          //Invokes the >> operator to input text information
  83.   cout << car1;                                                                         //Invokes the << operator to output text information
  84.  
  85.   car1.removeLastPassenger ();                  //Invokes removeLast function for 1:M association object
  86.   car1.removeAllPassengers();             //Invokes removeAll function for 1:M association object
  87.   
  88.   return 0;                     //Default destructor is invoked
  89. }
  90.  
  91.  
  92.